//! Pre-startup OS-a, sredim neke stvari prije nego idem na "visu" razinu

#include "postavke.h"
#include "spremnik.h"

#include <jezgra/postavke.h>
#include <jezgra/razno.h>

/*!
 * Funkcija koja je pozvana odmah iz asemblerskog koda kod samog pocetka
 * bootanja.
 * \param magic Bootloader magic number
 * \param addr Adresa multiboot_info_t strukture
 */
__attribute__ ( ( __section__ ( ".pocetak_koda" ) ) )
void arh_pocetak (unsigned long magic, unsigned long addr)
{
	//prebaci osnovni dio na adresu 0 (sve stane u 0. stranicu - dijeljenu)
	extern char programi_pocetak, pocetak_prve_stranice, kraj_prve_stranice;
	uint velicina_stranice;

	velicina_stranice = 
		( (uint) &kraj_prve_stranice ) - (uint) &pocetak_prve_stranice;

	memcpy ( &pocetak_prve_stranice, &programi_pocetak, velicina_stranice );


	j_pocetak(magic, addr); //predajemo kontrolu jezgri
}
